package com.xsd.xsdhouduan.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xsd.xsdhouduan.entity.Task;

import java.util.List;

/**
 * 任务服务接口
 */
public interface TaskService extends IService<Task> {
    
    /**
     * 发布任务
     */
    boolean publishTask(Task task);
    
    /**
     * 接受任务
     */
    boolean acceptTask(Long taskId, Long accepterId);
    
    /**
     * 完成任务
     */
    boolean completeTask(Long taskId);
    
    /**
     * 取消任务
     */
    boolean cancelTask(Long taskId);
    
    /**
     * 放弃任务（接取者放弃）
     */
    boolean abandonTask(Long taskId);
    
    /**
     * 根据发布者ID查询任务
     */
    List<Task> getByPublisherId(Long publisherId);
    
    /**
     * 根据接受者ID查询任务
     */
    List<Task> getByAccepterId(Long accepterId);
    
    /**
     * 根据学校ID查询任务
     */
    List<Task> getBySchoolId(Long schoolId);
    
    /**
     * 获取总收入
     */
    Double getTotalRevenue();
    
    /**
     * 获取最近任务
     */
    List<Task> getRecentTasks(int limit);
    
    /**
     * 获取所有任务（填充详情）
     */
    List<Task> getAllTasksWithDetails();
}
